欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

其他構造的源碼分析

利用其他 Collection 構建 ArrayList:

public ArrayList(Collection<? extends E> c) {
? ? elementData = c.toArray();
? ? if ((size = elementData.length) != 0) {
? ? ? ? // c.toArray might (incorrectly) not return Object[] (see 6260652)
? ? ? ? if (elementData.getClass() != Object[].class)
? ? ? ? ? ? elementData = Arrays.copyOf(elementData, size, Object[].class);
? ? } else {
? ? ? ? // replace with empty array.
? ? ? ? this.elementData = EMPTY_ELEMENTDATA;
? ? }
}

Collection<? extends E> c的含義:

  • 實現了Collection接口
  • <? extends E>: 你傳入的數據,泛型E自己后者E的子類

指定順序表初始容量:

public ArrayList(int initialCapacity) {
? ? if (initialCapacity > 0) {
? ? ? ? this.elementData = new Object[initialCapacity];
? ? } else if (initialCapacity == 0) {
? ? ? ? this.elementData = EMPTY_ELEMENTDATA;
? ? } else {
? ? ? ? throw new IllegalArgumentException("Illegal Capacity: "+
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?initialCapacity);
? ? }
}

指定容量等于0 根據之前分析的源碼可知add時 if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA)這個判斷不會進入,第一次增加后增容的大小是1,然后一直是1.5倍的大小新增。

? ? 指定容量大于0 創建一個指定容量的數組
? ? 指定容量等于0 指向EMPTY_ELEMENTDATA(是一個大小為0的數組)
? ? 指定容量等于0 add時第一次增加后增容的大小是1,然后一直是1.5倍的大小新增。
? ? 指定容量小于0 拋出異常

創建ArrayList
public static void main(String[] args) {
? ? // ArrayList創建,推薦寫法
? ? // 構造一個空的列表
? ? List<Integer> list1 = new ArrayList<>();
? ? // 構造一個具有10個容量的列表
? ? List<Integer> list2 = new ArrayList<>(10);
? ? list2.add(1);
? ? list2.add(2);
? ? list2.add(3);
? ? // list2.add("hello"); // 編譯失敗,List<Integer>已經限定了,list2中只能存儲整形元素
? ? // list3構造好之后,與list中的元素一致
? ? List<Integer> list3 = new ArrayList<>(list2);
? ? // 避免省略類型,否則:任意類型的元素都可以存放,使用時將是一場災難
? ? List list4 = new ArrayList();
? ? list4.add("111");
? ? list4.add(100);
}

通過idea查看四個list中的數據

?

文章鏈接: http://www.qzkangyuan.com/22436.html

文章標題:其他構造的源碼分析

文章版權:夢飛科技所發布的內容,部分為原創文章,轉載請注明來源,網絡轉載文章如有侵權請聯系我們!

聲明:本站所有文章,如無特殊說明或標注,均為本站原創發布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發布本站內容到任何網站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
建站教程

ArrayList的構造

2023-7-26 14:26:03

建站教程

ArrayList的使用方法

2023-7-27 14:49:06

0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 河源市| 霍邱县| 永新县| 亚东县| 嘉祥县| 吉林省| 铜梁县| 丹巴县| 招远市| 浙江省| 杂多县| 望谟县| 沂南县| 福清市| 剑河县| 安丘市| 象州县| 屏东县| 东山县| 临朐县| 安仁县| 庆阳市| 长春市| 稷山县| 大城县| 普兰店市| 谢通门县| 湟源县| 三都| 娱乐| 房山区| 阜新| 乌兰县| 毕节市| 镇平县| 太和县| 本溪| 德庆县| 任丘市| 威远县| 龙口市|